package cn.kbblog.test;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;

/**
 * base64编解码
* @author ykb yang.kb@topcheer.com
* @date 2017年4月17日 下午3:21:43 
*
 */
public class Base64 {

	private static Logger LOG = LoggerFactory.getLogger(Base64.class);
	
	/**
	 * Base64编码
	* @param obj
	* @return
	* @throws Exception String
	* @author ykb yang.kb@topcheer.com   
	* @date 2017年4月17日 下午1:07:22
	 */
	public static String getEncoder(Object obj) throws Exception{
		try {
			BASE64Encoder encoder = new BASE64Encoder();
			return encoder.encodeBuffer(obj.toString().getBytes("UTF-8")).replaceAll("\r|\n", "");
		} catch (Exception e) {
			e.printStackTrace();
			LOG.info(obj.toString()+"Base64编码失败:"+e.getStackTrace());
			throw new Exception("Base64编码失败");
		}
	}
	
	/**
	 * Base64解码
	* @param b64Str
	* @return
	* @throws Exception String
	* @author ykb yang.kb@topcheer.com   
	* @date 2017年4月17日 下午1:07:45
	 */
	public static String getDecoder(String b64Str) throws Exception{
		try {
			BASE64Decoder decoder = new BASE64Decoder();
			return new String(decoder.decodeBuffer(b64Str),"UTF-8");
		} catch (Exception e) {
			e.printStackTrace();
			LOG.info(b64Str+"Base64解码失败:"+e.getStackTrace());
			throw new Exception("Base64解码失败");
		}
	}
	
}
